package com.jixi.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.jixi.common.result.PageResult;
import com.jixi.common.result.Result;
import com.jixi.pojo.dto.EducationLoginDto;
import com.jixi.pojo.dto.EducationRegisterDto;
import com.jixi.pojo.entity.Education;

public interface EducationService extends IService<Education> {
	
	/**
	 * 教育局注册
	 *
	 * @param educationRegisterDto 教育局注册Dto
	 * @return 注册结果
	 */
	Result educationRegister(EducationRegisterDto educationRegisterDto);
	
	/**
	 * 教育局登录
	 *
	 * @param educationLoginDto 教育局登录Dto
	 * @return 登录结果
	 */
	Result educationLogin(EducationLoginDto educationLoginDto);
	
	/**
	 * 重置密码
	 *
	 * @param educationId   教育局id
	 * @param resetPassword 重置密码
	 * @return 重置结果
	 */
	Result educationResetPassword(Long educationId, String resetPassword);
	
	/**
	 * 修改密码
	 *
	 * @param oldPassword 旧密码
	 * @param newPassword 新密码
	 * @param rePassword  重复新密码
	 * @return 修改结果
	 */
	Result educationUpdatePassword(String oldPassword, String newPassword, String rePassword);
	
	/**
	 * 获取教育局信息
	 *
	 * @return 教育局信息
	 */
	Education getEducationinfo();
	
	/**
	 * 教育局列表条件分页查询
	 *
	 * @param pageNum           页码
	 * @param pageSize          页大小
	 * @param educationNickname 教育局昵称
	 * @param educationPower    权限
	 * @param status            状态
	 * @return 教育局列表
	 */
	Result<PageResult> educationPage(Integer pageNum, Integer pageSize, String educationNickname, Integer educationPower, Integer status);
	
	/**
	 * 修改权限
	 *
	 * @param educationId    教育局Id
	 * @param educationPower 权限
	 * @return 修改结果
	 */
	Result educationPermission(Long educationId, Integer educationPower);
	
	/**
	 * 修改状态
	 *
	 * @param educationId 教育局Id
	 * @param status      教育局状态
	 * @return 修改结果
	 */
	Result updateEducationStatus(Long educationId, Integer status);
	
	/**
	 * 删除账号
	 *
	 * @param educationId 教育局id
	 * @return 删除结果
	 */
	Result deleteEducationById(Long educationId);
	
	/**
	 * 修改信息
	 *
	 * @param educationNickname 教育局昵称
	 * @param educationTel      教育局电话
	 * @return 修改结果
	 */
	Result educationUpdateInfo(String educationNickname, String educationTel);
}
